home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / documents / RFC / rfc1212.txt < prev    next >
Text File  |  1994-08-01  |  43KB  |  1,067 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                           M. Rose
  8. Request for Comments: 1212            Performance Systems International
  9.                                                           K. McCloghrie
  10.                                                      Hughes LAN Systems
  11.                                                                 Editors
  12.                                                              March 1991
  13.  
  14.  
  15.                         Concise MIB Definitions
  16. Status of this Memo
  17.  
  18.    This memo defines a format for producing MIB modules.  This RFC
  19.    specifies an IAB standards track document for the Internet community,
  20.    and requests discussion and suggestions for improvements.  Please
  21.    refer to the current edition of the "IAB Official Protocol Standards"
  22.    for the standardization state and status of this protocol.
  23.    Distribution of this memo is unlimited.
  24.  
  25. Table of Contents
  26.  
  27.    1. Abstract..............................................    2
  28.    2. Historical Perspective ...............................    2
  29.    3. Columnar Objects .....................................    3
  30.    3.1 Row Deletion ........................................    4
  31.    3.2 Row Addition ........................................    4
  32.    4. Defining Objects .....................................    5
  33.    4.1 Mapping of the OBJECT-TYPE macro ....................    7
  34.    4.1.1 Mapping of the SYNTAX clause ......................    7
  35.    4.1.2 Mapping of the ACCESS clause ......................    8
  36.    4.1.3 Mapping of the STATUS clause ......................    8
  37.    4.1.4 Mapping of the DESCRIPTION clause .................    8
  38.    4.1.5 Mapping of the REFERENCE clause ...................    8
  39.    4.1.6 Mapping of the INDEX clause .......................    8
  40.    4.1.7 Mapping of the DEFVAL clause ......................   10
  41.    4.1.8 Mapping of the OBJECT-TYPE value ..................   11
  42.    4.2 Usage Example .......................................   11
  43.    5. Appendix: DE-osifying MIBs ...........................   13
  44.    5.1 Managed Object Mapping ..............................   14
  45.    5.1.1 Mapping to the SYNTAX clause ......................   15
  46.    5.1.2 Mapping to the ACCESS clause ......................   15
  47.    5.1.3 Mapping to the STATUS clause ......................   15
  48.    5.1.4 Mapping to the DESCRIPTION clause .................   15
  49.    5.1.5 Mapping to the REFERENCE clause ...................   16
  50.    5.1.6 Mapping to the INDEX clause .......................   16
  51.    5.1.7 Mapping to the DEFVAL clause ......................   16
  52.    5.2 Action Mapping ......................................   16
  53.    5.2.1 Mapping to the SYNTAX clause ......................   16
  54.    5.2.2 Mapping to the ACCESS clause ......................   16
  55.  
  56.  
  57.  
  58. SNMP Working Group                                              [Page 1]
  59.  
  60. RFC 1212                Concise MIB Definitions               March 1991
  61.  
  62.  
  63.    5.2.3 Mapping to the STATUS clause ......................   16
  64.    5.2.4 Mapping to the DESCRIPTION clause .................   16
  65.    5.2.5 Mapping to the REFERENCE clause ...................   16
  66.    6. Acknowledgements .....................................   17
  67.    7. References ...........................................   18
  68.    8. Security Considerations...............................   19
  69.    9. Authors' Addresses....................................   19
  70.  
  71. 1.  Abstract
  72.  
  73.    This memo describes a straight-forward approach toward producing
  74.    concise, yet descriptive, MIB modules.  It is intended that all
  75.    future MIB modules be written in this format.
  76.  
  77. 2.  Historical Perspective
  78.  
  79.    As reported in RFC 1052, IAB Recommendations for the Development of
  80.    Internet Network Management Standards [1], a two-prong strategy for
  81.    network management of TCP/IP-based internets was undertaken.  In the
  82.    short-term, the Simple Network Management Protocol (SNMP), defined in
  83.    RFC 1067, was to be used to manage nodes in the Internet community.
  84.    In the long-term, the use of the OSI network management framework was
  85.    to be examined.  Two documents were produced to define the management
  86.    information: RFC 1065, which defined the Structure of Management
  87.    Information (SMI), and RFC 1066, which defined the Management
  88.    Information Base (MIB).  Both of these documents were designed so as
  89.    to be compatible with both the SNMP and the OSI network management
  90.    framework.
  91.  
  92.    This strategy was quite successful in the short-term: Internet-based
  93.    network management technology was fielded, by both the research and
  94.    commercial communities, within a few months.  As a result of this,
  95.    portions of the Internet community became network manageable in a
  96.    timely fashion.
  97.  
  98.    As reported in RFC 1109, Report of the Second Ad Hoc Network
  99.    Management Review Group [2], the requirements of the SNMP and the OSI
  100.    network management frameworks were more different than anticipated.
  101.    As such, the requirement for compatibility between the SMI/MIB and
  102.    both frameworks was suspended.  This action permitted the operational
  103.    network management framework, based on the SNMP, to respond to new
  104.    operational needs in the Internet community by producing MIB-II.
  105.  
  106.    In May of 1990, the core documents were elevated to "Standard
  107.    Protocols" with "Recommended" status.  As such, the Internet-standard
  108.    network management framework consists of: Structure and
  109.    Identification of Management Information for TCP/IP-based internets,
  110.    RFC 1155 [3], which describes how managed objects contained in the
  111.  
  112.  
  113.  
  114. SNMP Working Group                                              [Page 2]
  115.  
  116. RFC 1212                Concise MIB Definitions               March 1991
  117.  
  118.  
  119.    MIB are defined; Management Information Base for Network Management
  120.    of TCP/IP-based internets, which describes the managed objects
  121.    contained in the MIB, RFC 1156 [4]; and, the Simple Network
  122.    Management Protocol, RFC 1157 [5], which defines the protocol used to
  123.    manage these objects.  Consistent with the IAB directive to produce
  124.    simple, workable systems in the short-term, the list of managed
  125.    objects defined in the Internet-standard MIB was derived by taking
  126.    only those elements which are considered essential.  However, the SMI
  127.    defined three extensibility mechanisms: one, the addition of new
  128.    standard objects through the definitions of new versions of the MIB;
  129.    two, the addition of widely-available but non-standard objects
  130.    through the experimental subtree; and three, the addition of private
  131.    objects through the enterprises subtree.  Such additional objects can
  132.    not only be used for vendor-specific elements, but also for
  133.    experimentation as required to further the knowledge of which other
  134.    objects are essential.
  135.  
  136.    As more objects are defined using the second method, experience has
  137.    shown that the resulting MIB descriptions contain redundant
  138.    information.  In order to provide for MIB descriptions which are more
  139.    concise, and yet as informative, an enhancement is suggested.  This
  140.    enhancement allows the author of a MIB to remove the redundant
  141.    information, while retaining the important descriptive text.
  142.  
  143.    Before presenting the approach, a brief presentation of columnar
  144.    object handling by the SNMP is necessary.  This explains and further
  145.    motivates the value of the enhancement.
  146.  
  147. 3.  Columnar Objects
  148.  
  149.    The SNMP supports operations on MIB objects whose syntax is
  150.    ObjectSyntax as defined in the SMI.  Informally stated, SNMP
  151.    operations apply exclusively to scalar objects.  However, it is
  152.    convenient for developers of management applications to impose
  153.    imaginary, tabular structures on the ordered collection of objects
  154.    that constitute the MIB.  Each such conceptual table contains zero or
  155.    more rows, and each row may contain one or more scalar objects,
  156.    termed columnar objects.  Historically, this conceptualization has
  157.    been formalized by using the OBJECT-TYPE macro to define both an
  158.    object which corresponds to a table and an object which corresponds
  159.    to a row in that table.  (The ACCESS clause for such objects is
  160.    "not-accessible", of course.) However, it must be emphasized that, at
  161.    the protocol level, relationships among columnar objects in the same
  162.    row is a matter of convention, not of protocol.
  163.  
  164.    Note that there are good reasons why the tabular structure is not a
  165.    matter of protocol.  Consider the operation of the SNMP Get-Next-PDU
  166.    acting on the last columnar object of an instance of a conceptual
  167.  
  168.  
  169.  
  170. SNMP Working Group                                              [Page 3]
  171.  
  172. RFC 1212                Concise MIB Definitions               March 1991
  173.  
  174.  
  175.    row; it returns the next column of the first conceptual row or the
  176.    first object instance occurring after the table.  In contrast, if the
  177.    rows were a matter of protocol, then it would instead return an
  178.    error.  By not returning an error, a single PDU exchange informs the
  179.    manager that not only has the end of the conceptual row/table been
  180.    reached, but also provides information on the next object instance,
  181.    thereby increasing the information density of the PDU exchange.
  182.  
  183. 3.1.  Row Deletion
  184.  
  185.    Nonetheless, it is highly useful to provide a means whereby a
  186.    conceptual row may be removed from a table. In MIB-II, this was
  187.    achieved by defining, for each conceptual row, an integer-valued
  188.    columnar object.  If a management station sets the value of this
  189.    object to some value, usually termed "invalid", then the effect is
  190.    one of invalidating the corresponding row in the table.  However, it
  191.    is an implementation-specific matter as to whether an agent removes
  192.    an invalidated entry from the table.  Accordingly, management
  193.    stations must be prepared to receive tabular information from agents
  194.    that corresponds to entries not currently in use.  Proper
  195.    interpretation of such entries requires examination of the columnar
  196.    object indicating the in-use status.
  197.  
  198. 3.2.  Row Addition
  199.  
  200.    It is also highly useful to have a clear understanding of how a
  201.    conceptual row may be added to a table.  In the SNMP, at the protocol
  202.    level, a management station issues an SNMP set operation containing
  203.    an arbitrary set of variable bindings.  In the case that an agent
  204.    detects that one or more of those variable bindings refers to an
  205.    object instance not currently available in that agent, it may,
  206.    according to the rules of the SNMP, behave according to any of the
  207.    following paradigms:
  208.  
  209.           (1)  It may reject the SNMP set operation as referring to
  210.                non-existent object instances by returning a response
  211.                with the error-status field set to "noSuchName" and the
  212.                error-index field set to refer to the first vacuous
  213.                reference.
  214.  
  215.           (2)  It may accept the SNMP set operation as requesting the
  216.                creation  of new object instances corresponding to each
  217.                of the object instances named in the variable bindings.
  218.                The value of each (potentially) newly created object
  219.                instance is specified by the "value" component of the
  220.                relevant variable binding.  In this case, if the request
  221.                specifies a value for a newly (or previously) created
  222.                object that it deems inappropriate by reason of value or
  223.  
  224.  
  225.  
  226. SNMP Working Group                                              [Page 4]
  227.  
  228. RFC 1212                Concise MIB Definitions               March 1991
  229.  
  230.  
  231.                syntax, then it rejects the SNMP set operation by
  232.                responding with the error-status field set to badValue
  233.                and the error-index field set to refer to the first
  234.                offending variable binding.
  235.  
  236.           (3)  It may accept the SNMP set operation and create new
  237.                object instances as described in (2) above and, in
  238.                addition, at its discretion, create supplemental object
  239.                instances to complete a row in a conceptual table of
  240.                which the new object instances specified in the request
  241.                may be a part.
  242.  
  243.    It should be emphasized that all three of the above behaviors are
  244.    fully conformant to the SNMP specification and are fully acceptable,
  245.    subject to any restrictions which may be imposed by access control
  246.    and/or the definitions of the MIB objects themselves.
  247.  
  248. 4.  Defining Objects
  249.  
  250.    The Internet-standard SMI employs a two-level approach towards object
  251.    definition.  A MIB definition consists of two parts: a textual part,
  252.    in which objects are placed into groups, and a MIB module, in which
  253.    objects are described solely in terms of the ASN.1 macro OBJECT-TYPE,
  254.    which is defined by the SMI.
  255.  
  256.    An example of the former definition might be:
  257.  
  258.           OBJECT:
  259.           -------
  260.                sysLocation { system 6 }
  261.  
  262.           Syntax:
  263.                DisplayString (SIZE (0..255))
  264.  
  265.           Definition:
  266.                The physical location of this node (e.g., "telephone
  267.                closet, 3rd floor").
  268.  
  269.           Access:
  270.                read-only.
  271.  
  272.           Status:
  273.                mandatory.
  274.  
  275.           An example of the latter definition might be:
  276.  
  277.                sysLocation OBJECT-TYPE
  278.                    SYNTAX  DisplayString (SIZE (0..255))
  279.  
  280.  
  281.  
  282. SNMP Working Group                                              [Page 5]
  283.  
  284. RFC 1212                Concise MIB Definitions               March 1991
  285.  
  286.  
  287.                    ACCESS  read-only
  288.                    STATUS  mandatory
  289.                    ::= { system 6 }
  290.  
  291.           In the interests of brevity and to reduce the chance of
  292.           editing errors, it would seem useful to combine the two
  293.           definitions.  This can be accomplished by defining an
  294.           extension to the OBJECT-TYPE macro:
  295.  
  296.           IMPORTS
  297.               ObjectName
  298.                   FROM RFC1155-SMI
  299.               DisplayString
  300.                   FROM RFC1158-MIB;
  301.  
  302.           OBJECT-TYPE MACRO ::=
  303.           BEGIN
  304.               TYPE NOTATION ::=
  305.                                           -- must conform to
  306.                                           -- RFC1155's ObjectSyntax
  307.                                 "SYNTAX" type(ObjectSyntax)
  308.                                 "ACCESS" Access
  309.                                 "STATUS" Status
  310.                                 DescrPart
  311.                                 ReferPart
  312.                                 IndexPart
  313.                                 DefValPart
  314.               VALUE NOTATION ::= value (VALUE ObjectName)
  315.  
  316.               Access ::= "read-only"
  317.                               | "read-write"
  318.                               | "write-only"
  319.                               | "not-accessible"
  320.               Status ::= "mandatory"
  321.                               | "optional"
  322.                               | "obsolete"
  323.                               | "deprecated"
  324.  
  325.               DescrPart ::=
  326.                          "DESCRIPTION" value (description DisplayString)
  327.                               | empty
  328.  
  329.               ReferPart ::=
  330.                          "REFERENCE" value (reference DisplayString)
  331.                               | empty
  332.  
  333.               IndexPart ::=
  334.                          "INDEX" "{" IndexTypes "}"
  335.  
  336.  
  337.  
  338. SNMP Working Group                                              [Page 6]
  339.  
  340. RFC 1212                Concise MIB Definitions               March 1991
  341.  
  342.  
  343.                               | empty
  344.               IndexTypes ::=
  345.                          IndexType | IndexTypes "," IndexType
  346.               IndexType ::=
  347.                                   -- if indexobject, use the SYNTAX
  348.                                   -- value of the correspondent
  349.                                   -- OBJECT-TYPE invocation
  350.                          value (indexobject ObjectName)
  351.                                   -- otherwise use named SMI type
  352.                                   -- must conform to IndexSyntax below
  353.                               | type (indextype)
  354.  
  355.               DefValPart ::=
  356.                          "DEFVAL" "{" value (defvalue ObjectSyntax) "}"
  357.                               | empty
  358.  
  359.           END
  360.  
  361.           IndexSyntax ::=
  362.               CHOICE {
  363.                   number
  364.                       INTEGER (0..MAX),
  365.                   string
  366.                       OCTET STRING,
  367.                   object
  368.                       OBJECT IDENTIFIER,
  369.                   address
  370.                       NetworkAddress,
  371.                   ipAddress
  372.                       IpAddress
  373.               }
  374.  
  375.  
  376. 4.1.  Mapping of the OBJECT-TYPE macro
  377.  
  378.    It should be noted that the expansion of the OBJECT-TYPE macro is
  379.    something which conceptually happens during implementation and not
  380.    during run-time.
  381.  
  382. 4.1.1.  Mapping of the SYNTAX clause
  383.  
  384.    The SYNTAX clause, which must be present, defines the abstract data
  385.    structure corresponding to that object type.  The ASN.1 language [6]
  386.    is used for this purpose.  However, the SMI purposely restricts the
  387.    ASN.1 constructs which may be used.  These restrictions are made
  388.    expressly for simplicity.
  389.  
  390.  
  391.  
  392.  
  393.  
  394. SNMP Working Group                                              [Page 7]
  395.  
  396. RFC 1212                Concise MIB Definitions               March 1991
  397.  
  398.  
  399. 4.1.2.  Mapping of the ACCESS clause
  400.  
  401.    The ACCESS clause, which must be present, defines the minimum level
  402.    of support required for that object type.  As a local matter,
  403.    implementations may support other access types (e.g., an
  404.    implementation may elect to permitting writing a variable marked as
  405.    read-only).  Further, protocol-specific "views" (e.g., those
  406.    indirectly implied by an SNMP community) may make further
  407.    restrictions on access to a variable.
  408.  
  409. 4.1.3.  Mapping of the STATUS clause
  410.  
  411.    The STATUS clause, which must be present, defines the implementation
  412.    support required for that object type.
  413.  
  414. 4.1.4.  Mapping of the DESCRIPTION clause
  415.  
  416.    The DESCRIPTION clause, which need not be present, contains a textual
  417.    definition of that object type which provides all semantic
  418.    definitions necessary for implementation, and should embody any
  419.    information which would otherwise be communicated in any ASN.1
  420.    commentary annotations associated with the object.  Note that, in
  421.    order to conform to the ASN.1 syntax, the entire value of this clause
  422.    must be enclosed in double quotation marks, although the value may be
  423.    multi-line.
  424.  
  425.    Further, note that if the MIB module does not contain a textual
  426.    description of the object type elsewhere then the DESCRIPTION clause
  427.    must be present.
  428.  
  429. 4.1.5.  Mapping of the REFERENCE clause
  430.  
  431.    The REFERENCE clause, which need not be present, contains a textual
  432.    cross-reference to an object defined in some other MIB module.  This
  433.    is useful when de-osifying a MIB produced by some other organization.
  434.  
  435. 4.1.6.  Mapping of the INDEX clause
  436.  
  437.    The INDEX clause, which may be present only if that object type
  438.    corresponds to a conceptual row, defines instance identification
  439.    information for that object type.  (Historically, each MIB definition
  440.    contained a section entitled "Identification of OBJECT instances for
  441.    use with the SNMP".  By using the INDEX clause, this section need no
  442.    longer occur as this clause concisely captures the precise semantics
  443.    needed for instance identification.)
  444.  
  445.    If the INDEX clause is not present, and the object type corresponds
  446.    to a non-columnar object, then instances of the object are identified
  447.  
  448.  
  449.  
  450. SNMP Working Group                                              [Page 8]
  451.  
  452. RFC 1212                Concise MIB Definitions               March 1991
  453.  
  454.  
  455.    by appending a sub-identifier of zero to the name of that object.
  456.    Further, note that if the MIB module does not contain a textual
  457.    description of how instance identification information is derived for
  458.    columnar objects, then the INDEX clause must be present.
  459.  
  460.    To define the instance identification information, determine which
  461.    object value(s) will unambiguously distinguish a conceptual row.  The
  462.    syntax of those objects indicate how to form the instance-identifier:
  463.  
  464.           (1)  integer-valued: a single sub-identifier taking the
  465.                integer value (this works only for non-negative
  466.                integers);
  467.  
  468.           (2)  string-valued, fixed-length strings: `n' sub-identifiers,
  469.                where `n' is the length of the string (each octet of the
  470.                string is encoded in a separate sub-identifier);
  471.  
  472.           (3)  string-valued, variable-length strings: `n+1' sub-
  473.                identifiers, where `n' is the length of the string (the
  474.                first sub-identifier is `n' itself, following this, each
  475.                octet of the string is encoded in a separate sub-
  476.                identifier);
  477.  
  478.           (4)  object identifier-valued: `n+1' sub-identifiers, where
  479.                `n' is the number of sub-identifiers in the value (the
  480.                first sub-identifier is `n' itself, following this, each
  481.                sub-identifier in the value is copied);
  482.  
  483.           (5)  NetworkAddress-valued: `n+1' sub-identifiers, where `n'
  484.                depends on the kind of address being encoded (the first
  485.                sub-identifier indicates the kind of address, value 1
  486.                indicates an IpAddress); or,
  487.  
  488.           (6)  IpAddress-valued: 4 sub-identifiers, in the familiar
  489.                a.b.c.d notation.
  490.  
  491.    Note that if an "indextype" value is present (e.g., INTEGER rather
  492.    than ifIndex), then a DESCRIPTION clause must be present; the text
  493.    contained therein indicates the semantics of the "indextype" value.
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506. SNMP Working Group                                              [Page 9]
  507.  
  508. RFC 1212                Concise MIB Definitions               March 1991
  509.  
  510.  
  511.    By way of example, in the context of MIB-II [7], the following INDEX
  512.    clauses might be present:
  513.  
  514.                  objects under         INDEX clause
  515.                -----------------       ------------
  516.                ifEntry                 { ifIndex }
  517.                atEntry                 { atNetIfIndex,
  518.                                          atNetAddress }
  519.                ipAddrEntry             { ipAdEntAddr }
  520.                ipRouteEntry            { ipRouteDest }
  521.                ipNetToMediaEntry       { ipNetToMediaIfIndex,
  522.                                          ipNetToMediaNetAddress }
  523.                tcpConnEntry            { tcpConnLocalAddress,
  524.                                          tcpConnLocalPort,
  525.                                          tcpConnRemoteAddress,
  526.                                          tcpConnRemotePort }
  527.                udpEntry                { udpLocalAddress,
  528.                                          udpLocalPort }
  529.                egpNeighEntry           { egpNeighAddr }
  530.  
  531.  
  532. 4.1.7.  Mapping of the DEFVAL clause
  533.  
  534.    The DEFVAL clause, which need not be present, defines an acceptable
  535.    default value which may be used when an object instance is created at
  536.    the discretion of the agent acting in conformance with the third
  537.    paradigm described in Section 4.2 above.
  538.  
  539.    During conceptual row creation, if an instance of a columnar object
  540.    is not present as one of the operands in the correspondent SNMP set
  541.    operation, then the value of the DEFVAL clause, if present, indicates
  542.    an acceptable default value that the agent might use.
  543.  
  544.    The value of the DEFVAL clause must, of course, correspond to the
  545.    SYNTAX clause for the object.  Note that if an operand to the SNMP
  546.    set operation is an instance of a read-only object, then the error
  547.    noSuchName will be returned.  As such, the DEFVAL clause can be used
  548.    to provide an acceptable default value that the agent might use.
  549.  
  550.    It is possible that no acceptable default value may exist for any of
  551.    the columnar objects in a conceptual row for which the creation of
  552.    new object instances is allowed.  In this case, the objects specified
  553.    in the INDEX clause must have a corresponding ACCESS clause value of
  554.    read-write.
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562. SNMP Working Group                                             [Page 10]
  563.  
  564. RFC 1212                Concise MIB Definitions               March 1991
  565.  
  566.  
  567.    By way of example, consider the following possible DEFVAL clauses:
  568.  
  569.        ObjectSyntax            DEFVAL clause
  570.        -----------------       ------------
  571.        INTEGER                 1 -- same for Counter, Gauge, TimeTicks
  572.        OCTET STRING            'ffffffffffff'h
  573.        DisplayString           "any NVT ASCII string"
  574.        OBJECT IDENTIFIER       sysDescr
  575.        OBJECT IDENTIFIER       { system 2 }
  576.        NULL                    NULL
  577.        NetworkAddress          { internet 'c0210415'h }
  578.        IpAddress               'c0210415'h -- 192.33.4.21
  579.  
  580.  
  581. 4.1.8.  Mapping of the OBJECT-TYPE value
  582.  
  583.    The value of an invocation of the OBJECT-TYPE macro is the name of
  584.    the object, which is an object identifier.
  585.  
  586. 4.2.  Usage Example
  587.  
  588.    Consider how the ipNetToMediaTable from MIB-II might be fully
  589.    described:
  590.  
  591.           -- the IP Address Translation tables
  592.  
  593.           -- The Address Translation tables contain IpAddress to
  594.           -- "physical" address equivalences.  Some interfaces do not
  595.           -- use translation tables for determining address equivalences
  596.           -- (e.g., DDN-X.25 has an algorithmic method); if all
  597.           -- interfaces are of this type, then the Address Translation
  598.           -- table is empty, i.e., has zero entries.
  599.  
  600.           ipNetToMediaTable OBJECT-TYPE
  601.               SYNTAX  SEQUENCE OF IpNetToMediaEntry
  602.               ACCESS  not-accessible
  603.               STATUS  mandatory
  604.               DESCRIPTION
  605.                       "The IP Address Translation table used for mapping
  606.                       from IP addresses to physical addresses."
  607.               ::= { ip 22 }
  608.  
  609.           ipNetToMediaEntry OBJECT-TYPE
  610.               SYNTAX  IpNetToMediaEntry
  611.               ACCESS  not-accessible
  612.               STATUS  mandatory
  613.               DESCRIPTION
  614.                       "Each entry contains one IpAddress to 'physical'
  615.  
  616.  
  617.  
  618. SNMP Working Group                                             [Page 11]
  619.  
  620. RFC 1212                Concise MIB Definitions               March 1991
  621.  
  622.  
  623.                       address equivalence."
  624.               INDEX   { ipNetToMediaIfIndex,
  625.                         ipNetToMediaNetAddress }
  626.               ::= { ipNetToMediaTable 1 }
  627.  
  628.           IpNetToMediaEntry ::=
  629.               SEQUENCE {
  630.                   ipNetToMediaIfIndex
  631.                       INTEGER,
  632.                   ipNetToMediaPhysAddress
  633.                       OCTET STRING,
  634.                   ipNetToMediaNetAddress
  635.                       IpAddress,
  636.                   ipNetoToMediaType
  637.                       INTEGER
  638.               }
  639.  
  640.           ipNetToMediaIfIndex OBJECT-TYPE
  641.               SYNTAX  INTEGER
  642.               ACCESS  read-write
  643.               STATUS  mandatory
  644.               DESCRIPTION
  645.                       "The interface on which this entry's equivalence
  646.                       is effective.  The interface identified by a
  647.                       particular value of this index is the same
  648.                       interface as identified by the same value of
  649.                       ifIndex."
  650.               ::= { ipNetToMediaEntry 1 }
  651.  
  652.           ipNetToMediaPhysAddress OBJECT-TYPE
  653.               SYNTAX  OCTET STRING
  654.               ACCESS  read-write
  655.               STATUS  mandatory
  656.               DESCRIPTION
  657.                       "The media-dependent 'physical' address."
  658.               ::= { ipNetToMediaEntry 2 }
  659.  
  660.           ipNetToMediaNetAddress OBJECT-TYPE
  661.               SYNTAX  IpAddress
  662.               ACCESS  read-write
  663.               STATUS  mandatory
  664.               DESCRIPTION
  665.                       "The IpAddress corresponding to the media-
  666.                       dependent 'physical' address."
  667.               ::= { ipNetToMediaEntry 3 }
  668.  
  669.           ipNetToMediaType OBJECT-TYPE
  670.               SYNTAX  INTEGER {
  671.  
  672.  
  673.  
  674. SNMP Working Group                                             [Page 12]
  675.  
  676. RFC 1212                Concise MIB Definitions               March 1991
  677.  
  678.  
  679.                           other(1),   -- none of the following
  680.                           invalid(2), -- an invalidated mapping
  681.                           dynamic(3),
  682.                           static(4)
  683.                       }
  684.               ACCESS  read-write
  685.               STATUS  mandatory
  686.               DESCRIPTION
  687.                       "The type of mapping.
  688.  
  689.                       Setting this object to the value invalid(2) has
  690.                       the effect of invalidating the corresponding entry
  691.                       in the ipNetToMediaTable.  That is, it effectively
  692.                       disassociates the interface identified with said
  693.                       entry from the mapping identified with said entry.
  694.                       It is an implementation-specific matter as to
  695.                       whether the agent removes an invalidated entry
  696.                       from the table.  Accordingly, management stations
  697.                       must be prepared to receive tabular information
  698.                       from agents that corresponds to entries not
  699.                       currently in use.  Proper interpretation of such
  700.                       entries requires examination of the relevant
  701.                       ipNetToMediaType object."
  702.                   ::= { ipNetToMediaEntry 4 }
  703.  
  704.  
  705. 5.  Appendix: DE-osifying MIBs
  706.  
  707.    There has been an increasing amount of work recently on taking MIBs
  708.    defined by other organizations (e.g., the IEEE) and de-osifying them
  709.    for use with the Internet-standard network management framework.  The
  710.    steps to achieve this are straight-forward, though tedious.  Of
  711.    course, it is helpful to already be experienced in writing MIB
  712.    modules for use with the Internet-standard network management
  713.    framework.
  714.  
  715.    The first step is to construct a skeletal MIB module, e.g.,
  716.  
  717.                RFC1213-MIB DEFINITIONS ::= BEGIN
  718.  
  719.                IMPORTS
  720.                        experimental, OBJECT-TYPE, Counter
  721.                            FROM RFC1155-SMI;
  722.  
  723.                        -- contact IANA for actual number
  724.                root    OBJECT IDENTIFIER ::= { experimental xx }
  725.  
  726.                END
  727.  
  728.  
  729.  
  730. SNMP Working Group                                             [Page 13]
  731.  
  732. RFC 1212                Concise MIB Definitions               March 1991
  733.  
  734.  
  735.    The next step is to categorize the objects into groups.  For
  736.    experimental MIBs, optional objects are permitted.  However, when a
  737.    MIB module is placed in the Internet-standard space, these optional
  738.    objects are either removed, or placed in a optional group, which, if
  739.    implemented, all objects in the group must be implemented.  For the
  740.    first pass, it is wisest to simply ignore any optional objects in the
  741.    original MIB: experience shows it is better to define a core MIB
  742.    module first, containing only essential objects; later, if experience
  743.    demands, other objects can be added.
  744.  
  745.    It must be emphasized that groups are "units of conformance" within a
  746.    MIB: everything in a group is "mandatory" and implementations do
  747.    either whole groups or none.
  748.  
  749. 5.1.  Managed Object Mapping
  750.  
  751.    Next for each managed object class, determine whether there can exist
  752.    multiple instances of that managed object class.  If not, then for
  753.    each of its attributes, use the OBJECT-TYPE macro to make an
  754.    equivalent definition.
  755.  
  756.    Otherwise, if multiple instances of the managed object class can
  757.    exist, then define a conceptual table having conceptual rows each
  758.    containing a columnar object for each of the managed object class's
  759.    attributes. If the managed object class is contained within the
  760.    containment tree of another managed object class, then the assignment
  761.    of an object type is normally required for each of the "distinguished
  762.    attributes" of the containing managed object class.  If they do not
  763.    already exist within the MIB module, then they can be added via the
  764.    definition of additional columnar objects in the conceptual row
  765.    corresponding to the contained managed object class.
  766.  
  767.    In defining a conceptual row, it is useful to consider the
  768.    optimization of network management operations which will act upon its
  769.    columnar objects.  In particular, it is wisest to avoid defining more
  770.    columnar objects within a conceptual row, than can fit in a single
  771.    PDU.  As a rule of thumb, a conceptual row should contain no more
  772.    than approximately 20 objects.  Similarly, or as a way to abide by
  773.    the "20 object guideline", columnar objects should be grouped into
  774.    tables according to the expected grouping of network management
  775.    operations upon them.  As such, the content of conceptual rows should
  776.    reflect typical access scenarios, e.g., they should be organized
  777.    along functional lines such as one row for statistics and another row
  778.    for parameters, or along usage lines such as commonly-needed objects
  779.    versus rarely-needed objects.
  780.  
  781.    On the other hand, the definition of conceptual rows where the number
  782.    of columnar objects used as indexes outnumbers the number used to
  783.  
  784.  
  785.  
  786. SNMP Working Group                                             [Page 14]
  787.  
  788. RFC 1212                Concise MIB Definitions               March 1991
  789.  
  790.  
  791.    hold information, should also be avoided.  In particular, the
  792.    splitting of a managed object class's attributes into many conceptual
  793.    tables should not be used as a way to obtain the same degree of
  794.    flexibility/complexity as is often found in MIB's with a myriad of
  795.    optionals.
  796.  
  797. 5.1.1.  Mapping to the SYNTAX clause
  798.  
  799.    When mapping to the SYNTAX clause of the OBJECT-type macro:
  800.  
  801.           (1)  An object with BOOLEAN syntax becomes an INTEGER taking
  802.                either of values true(1) or false(2).
  803.  
  804.           (2)  An object with ENUMERATED syntax becomes an INTEGER,
  805.                taking any of the values given.
  806.  
  807.           (3)  An object with BIT STRING syntax containing no more than
  808.                32 bits becomes an INTEGER defined as a sum; otherwise if
  809.                more than 32 bits are present, the object becomes an
  810.                OCTET STRING, with the bits numbered from left-to-right,
  811.                in which the least significant bits of the last octet may
  812.                be "reserved for future use".
  813.  
  814.           (4)  An object with a character string syntax becomes either
  815.                an OCTET STRING or a DisplayString, depending on the
  816.                repertoire of the character string.
  817.  
  818.           (5)  An non-tabular object with a complex syntax, such as REAL
  819.                or EXTERNAL, must be decomposed, usually into an OCTET
  820.                STRING (if sensible).  As a rule, any object with a
  821.                complicated syntax should be avoided.
  822.  
  823.           (6)  Tabular objects must be decomposed into rows of columnar
  824.                objects.
  825.  
  826. 5.1.2.  Mapping to the ACCESS clause
  827.  
  828.    This is straight-forward.
  829.  
  830. 5.1.3.  Mapping to the STATUS clause
  831.  
  832.    This is usually straight-forward; however, some osified-MIBs use the
  833.    term "recommended".  In this case, a choice must be made between
  834.    "mandatory" and "optional".
  835.  
  836. 5.1.4.  Mapping to the DESCRIPTION clause
  837.  
  838.    This is straight-forward: simply copy the text, making sure that any
  839.  
  840.  
  841.  
  842. SNMP Working Group                                             [Page 15]
  843.  
  844. RFC 1212                Concise MIB Definitions               March 1991
  845.  
  846.  
  847.    embedded double quotation marks are sanitized (i.e., replaced with
  848.    single-quotes or removed).
  849.  
  850. 5.1.5.  Mapping to the REFERENCE clause
  851.  
  852.    This is straight-forward: simply include a textual reference to the
  853.    object being mapped, the document which defines the object, and
  854.    perhaps a page number in the document.
  855.  
  856. 5.1.6.  Mapping to the INDEX clause
  857.  
  858.    Decide how instance-identifiers for columnar objects are to be formed
  859.    and define this clause accordingly.
  860.  
  861. 5.1.7.  Mapping to the DEFVAL clause
  862.  
  863.    Decide if a meaningful default value can be assigned to the object
  864.    being mapped, and if so, define the DEFVAL clause accordingly.
  865.  
  866. 5.2.  Action Mapping
  867.  
  868.    Actions are modeled as read-write objects, in which writing a
  869.    particular value results in the action taking place.
  870.  
  871. 5.2.1.  Mapping to the SYNTAX clause
  872.  
  873.    Usually an INTEGER syntax is used with a distinguished value provided
  874.    for each action that the object provides access to.  In addition,
  875.    there is usually one other distinguished value, which is the one
  876.    returned when the object is read.
  877.  
  878. 5.2.2.  Mapping to the ACCESS clause
  879.  
  880.    Always use read-write.
  881.  
  882. 5.2.3.  Mapping to the STATUS clause
  883.  
  884.    This is straight-forward.
  885.  
  886. 5.2.4.  Mapping to the DESCRIPTION clause
  887.  
  888.    This is straight-forward: simply copy the text, making sure that any
  889.    embedded double quotation marks are sanitized (i.e., replaced with
  890.    single-quotes or removed).
  891.  
  892. 5.2.5.  Mapping to the REFERENCE clause
  893.  
  894.    This is straight-forward: simply include a textual reference to the
  895.  
  896.  
  897.  
  898. SNMP Working Group                                             [Page 16]
  899.  
  900. RFC 1212                Concise MIB Definitions               March 1991
  901.  
  902.  
  903.    action being mapped, the document which defines the action, and
  904.    perhaps a page number in the document.
  905.  
  906. 6.  Acknowledgements
  907.  
  908.    This document was produced by the SNMP Working Group:
  909.  
  910.                Anne Ambler, Spider
  911.                Karl Auerbach, Sun
  912.                Fred Baker, ACC
  913.                Ken Brinkerhoff
  914.                Ron Broersma, NOSC
  915.                Jack Brown, US Army
  916.                Theodore Brunner, Bellcore
  917.                Jeffrey Buffum, HP
  918.                John Burress, Wellfleet
  919.                Jeffrey D. Case, University of Tennessee at Knoxville
  920.                Chris Chiptasso, Spartacus
  921.                Paul Ciarfella, DEC
  922.                Bob Collet
  923.                John Cook, Chipcom
  924.                Tracy Cox, Bellcore
  925.                James R. Davin, MIT-LCS
  926.                Eric Decker, cisco
  927.                Kurt Dobbins, Cabletron
  928.                Nadya El-Afandi, Network Systems
  929.                Gary Ellis, HP
  930.                Fred Engle
  931.                Mike Erlinger
  932.                Mark S. Fedor, PSI
  933.                Richard Fox, Synoptics
  934.                Karen Frisa, CMU
  935.                Chris Gunner, DEC
  936.                Fred Harris, University of Tennessee at Knoxville
  937.                Ken Hibbard, Xylogics
  938.                Ole Jacobsen, Interop
  939.                Ken Jones
  940.                Satish Joshi, Synoptics
  941.                Frank Kastenholz, Racal-Interlan
  942.                Shimshon Kaufman, Spartacus
  943.                Ken Key, University of Tennessee at Knoxville
  944.                Jim Kinder, Fibercom
  945.                Alex Koifman, BBN
  946.                Christopher Kolb, PSI
  947.                Cheryl Krupczak, NCR
  948.                Paul Langille, DEC
  949.                Peter Lin, Vitalink
  950.                John Lunny, TWG
  951.  
  952.  
  953.  
  954. SNMP Working Group                                             [Page 17]
  955.  
  956. RFC 1212                Concise MIB Definitions               March 1991
  957.  
  958.  
  959.                Carl Malamud
  960.                Randy Mayhew, University of Tennessee at Knoxville
  961.                Keith McCloghrie, Hughes LAN Systems
  962.                Donna McMaster, David Systems
  963.                Lynn Monsanto, Sun
  964.                Dave Perkins, 3COM
  965.                Jim Reinstedler, Ungerman Bass
  966.                Anil Rijsinghani, DEC
  967.                Kathy Rinehart, Arnold AFB
  968.                Kary Robertson
  969.                Marshall T. Rose, PSI (chair)
  970.                L. Michael Sabo, NCSC
  971.                Jon Saperia, DEC
  972.                Greg Satz, cisco
  973.                Martin Schoffstall, PSI
  974.                John Seligson
  975.                Steve Sherry, Xyplex
  976.                Fei Shu, NEC
  977.                Sam Sjogren, TGV
  978.                Mark Sleeper, Sparta
  979.                Lance Sprung
  980.                Mike St.Johns
  981.                Bob Stewart, Xyplex
  982.                Emil Sturniold
  983.                Kaj Tesink, Bellcore
  984.                Dean Throop, Data General
  985.                Bill Townsend, Xylogics
  986.                Maurice Turcotte, Racal-Milgo
  987.                Kannan Varadhou
  988.                Sudhanshu Verma, HP
  989.                Bill Versteeg, Network Research Corporation
  990.                Warren Vik, Interactive Systems
  991.                David Waitzman, BBN
  992.                Steve Waldbusser, CMU
  993.                Dan Wintringhan
  994.                David Wood
  995.                Wengyik Yeong, PSI
  996.                Jeff Young, Cray Research
  997.  
  998. 7.  References
  999.  
  1000.    [1] Cerf, V., "IAB Recommendations for the Development of Internet
  1001.        Network Management Standards", RFC 1052, NRI, April 1988.
  1002.  
  1003.    [2] Cerf, V., "Report of the Second Ad Hoc Network Management Review
  1004.        Group", RFC 1109, NRI, August 1989.
  1005.  
  1006.    [3] Rose M., and K. McCloghrie, "Structure and Identification of
  1007.  
  1008.  
  1009.  
  1010. SNMP Working Group                                             [Page 18]
  1011.  
  1012. RFC 1212                Concise MIB Definitions               March 1991
  1013.  
  1014.  
  1015.        Management Information for TCP/IP-based internets", RFC 1155,
  1016.        Performance Systems International, Hughes LAN Systems, May 1990.
  1017.  
  1018.    [4] McCloghrie K., and M. Rose, "Management Information Base for
  1019.        Network Management of TCP/IP-based internets", RFC 1156, Hughes
  1020.        LAN Systems, Performance Systems International, May 1990.
  1021.  
  1022.    [5] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple
  1023.        Network Management Protocol", RFC 1157, SNMP Research,
  1024.        Performance Systems International, Performance Systems
  1025.        International, MIT Laboratory for Computer Science, May 1990.
  1026.  
  1027.    [6] Information processing systems - Open Systems Interconnection -
  1028.        Specification of Abstract Syntax Notation One (ASN.1),
  1029.        International Organization for Standardization International
  1030.        Standard 8824, December 1987.
  1031.  
  1032.    [7] Rose M., Editor, "Management Information Base for Network
  1033.        Management of TCP/IP-based internets: MIB-II", RFC 1213,
  1034.        Performance Systems International, March 1991.
  1035.  
  1036. 8.  Security Considerations
  1037.  
  1038.    Security issues are not discussed in this memo.
  1039.  
  1040. 9.  Authors' Addresses
  1041.  
  1042.    Marshall T. Rose
  1043.    Performance Systems International
  1044.    5201 Great America Parkway
  1045.    Suite 3106
  1046.    Santa Clara, CA  95054
  1047.  
  1048.    Phone: +1 408 562 6222
  1049.    EMail: mrose@psi.com
  1050.    X.500:  rose, psi, us
  1051.  
  1052.  
  1053.    Keith McCloghrie
  1054.    Hughes LAN Systems
  1055.    1225 Charleston Road
  1056.    Mountain View, CA 94043
  1057.    1225 Charleston Road
  1058.    Mountain View, CA 94043
  1059.  
  1060.    Phone: (415) 966-7934
  1061.    EMail: kzm@hls.com
  1062.  
  1063.  
  1064.  
  1065.  
  1066. SNMP Working Group                                             [Page 19]
  1067.